package com.talos.ums.controller.admin.resource.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

@Schema(description = "管理后台 - 资源表 Response VO")
@Data
@ExcelIgnoreUnannotated
public class UmsResourceRespVO {

    @Schema(description = "自增id", requiredMode = Schema.RequiredMode.REQUIRED, example = "29168")
    @ExcelProperty("自增id")
    private Long id;

    @Schema(description = "", example = "20623")
    @ExcelProperty("")
    private Long appId;

    @Schema(description = "资源编码")
    @ExcelProperty("资源编码")
    private String code;

    @Schema(description = "资源名称", example = "李四")
    @ExcelProperty("资源名称")
    private String name;

    @Schema(description = "父级资源id", example = "11952")
    @ExcelProperty("父级资源id")
    private Long parentResourceId;

    @Schema(description = "父级资源编码")
    @ExcelProperty("父级资源编码")
    private String parentResourceCode;

    @Schema(description = "终端类型:PC,APP")
    @ExcelProperty("终端类型:PC,APP")
    private String terminal;

    @Schema(description = "", example = "王五")
    @ExcelProperty("")
    private String serviceName;

    @Schema(description = "系统: 0-企业级,1-仓库级")
    @ExcelProperty("系统: 0-企业级,1-仓库级")
    private Integer system;

    @Schema(description = "系统类型,(系统配置:SYS,公共数据:PUBLIC,WMS,BMS,TMS,OMS)", example = "2")
    @ExcelProperty("系统类型,(系统配置:SYS,公共数据:PUBLIC,WMS,BMS,TMS,OMS)")
    private String systemType;

    @Schema(description = "资源类型编码")
    @ExcelProperty("资源类型编码")
    private String resourceTypeCode;

    @Schema(description = "资源菜单类型描述")
    @ExcelProperty("资源菜单类型描述")
    private String resourceTypeMessage;

    @Schema(description = "资源url", example = "https://www.iocoder.cn")
    @ExcelProperty("资源url")
    private String resourceUrl;

    @Schema(description = "资源样式")
    @ExcelProperty("资源样式")
    private String resourceCss;

    @Schema(description = "资源排序，一级菜单为0，子级从1开始")
    @ExcelProperty("资源排序，一级菜单为0，子级从1开始")
    private Integer resourceSort;

    @Schema(description = "资源层级")
    @ExcelProperty("资源层级")
    private Integer resourceLevel;

    @Schema(description = "是否为自定义资源 1：是，2：否")
    @ExcelProperty("是否为自定义资源 1：是，2：否")
    private Integer customFlag;

    @Schema(description = "是否有效,1是，2否")
    @ExcelProperty("是否有效,1是，2否")
    private Integer activeFlag;

    @Schema(description = "语言")
    @ExcelProperty("语言")
    private String lang;

    @Schema(description = "创建人id", example = "18595")
    @ExcelProperty("创建人id")
    private Long creatorId;

    @Schema(description = "创建时间")
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    @Schema(description = "创建人工号")
    @ExcelProperty("创建人工号")
    private String creatorCode;

    @Schema(description = "创建人姓名", example = "李四")
    @ExcelProperty("创建人姓名")
    private String creatorName;

    @Schema(description = "修改人id", example = "15512")
    @ExcelProperty("修改人id")
    private Long modifierId;

    @Schema(description = "修改时间")
    @ExcelProperty("修改时间")
    private LocalDateTime modifyTime;

    @Schema(description = "修改人工号")
    @ExcelProperty("修改人工号")
    private String modifierCode;

    @Schema(description = "修改人姓名", example = "王五")
    @ExcelProperty("修改人姓名")
    private String modifierName;

    @Schema(description = "访问路径")
    @ExcelProperty("访问路径")
    private String path;

    @Schema(description = "菜单是否显示 1：是，2：否")
    @ExcelProperty("菜单是否显示 1：是，2：否")
    private Integer isShow;

    @Schema(description = "")
    @ExcelProperty("")
    private String icon;

    @Schema(description = "资源id树")
    @ExcelProperty("资源id树")
    private String resourceIdTree;

    @Schema(description = "资源编码树")
    @ExcelProperty("资源编码树")
    private String resourceCodeTree;

    @Schema(description = "接口,多个,隔开")
    @ExcelProperty("接口,多个,隔开")
    private String apis;

    @Schema(description = "权限按钮")
    @ExcelProperty("权限按钮")
    private String buttonPermissions;

    @Schema(description = "定位")
    @ExcelProperty("定位")
    private String locale;

    @Schema(description = "组件路径")
    @ExcelProperty("组件路径")
    private String componentPath;

    @Schema(description = "权限需求，1：true,0：false")
    @ExcelProperty("权限需求，1：true,0：false")
    private Integer requiresAuth;

    @Schema(description = "租户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6556")
    @ExcelProperty("租户id")
    private Long tenantId;

}
